#include "gtkshortcutaction.h"
#include "gtkshortcut.h"
-struct _GtkColorPlanePrivate
+struct _GtkColorPlane
{
+ GtkWidget parent_instance;
+
GtkAdjustment *h_adj;
GtkAdjustment *s_adj;
GtkAdjustment *v_adj;
GdkTexture *texture;
};
+typedef struct
+{
+ GtkWidgetClass parent_class;
+} GtkColorPlaneClass;
+
enum {
PROP_0,
PROP_H_ADJUSTMENT,
PROP_V_ADJUSTMENT
};
-G_DEFINE_TYPE_WITH_PRIVATE (GtkColorPlane, gtk_color_plane, GTK_TYPE_WIDGET)
+G_DEFINE_TYPE (GtkColorPlane, gtk_color_plane, GTK_TYPE_WIDGET)
static void
sv_to_xy (GtkColorPlane *plane,
width = gtk_widget_get_width (GTK_WIDGET (plane));
height = gtk_widget_get_height (GTK_WIDGET (plane));
- s = gtk_adjustment_get_value (plane->priv->s_adj);
- v = gtk_adjustment_get_value (plane->priv->v_adj);
+ s = gtk_adjustment_get_value (plane->s_adj);
+ v = gtk_adjustment_get_value (plane->v_adj);
*x = CLAMP (width * v, 0, width - 1);
*y = CLAMP (height * (1 - s), 0, height - 1);
height = gtk_widget_get_height (widget);
gtk_snapshot_append_texture (snapshot,
- plane->priv->texture,
+ plane->texture,
&GRAPHENE_RECT_INIT (0, 0, width, height));
if (gtk_widget_has_visible_focus (widget))
{
if (width == 0 || height == 0)
return;
- g_clear_object (&plane->priv->texture);
+ g_clear_object (&plane->texture);
stride = width * 4;
if (width > 1 && height > 1)
{
- h = gtk_adjustment_get_value (plane->priv->h_adj);
+ h = gtk_adjustment_get_value (plane->h_adj);
sf = 1.0 / (height - 1);
vf = 1.0 / (width - 1);
for (y = 0; y < height; y++)
}
bytes = g_bytes_new_take (data, height * stride);
- plane->priv->texture = gdk_memory_texture_new (width, height,
+ plane->texture = gdk_memory_texture_new (width, height,
GDK_MEMORY_DEFAULT,
bytes,
stride);
plane_unrealize (GtkWidget *widget)
{
GtkColorPlane *plane = GTK_COLOR_PLANE (widget);
- GtkColorPlanePrivate *priv = gtk_color_plane_get_instance_private (plane);
- g_clear_object (&priv->texture);
+ g_clear_object (&plane->texture);
GTK_WIDGET_CLASS (gtk_color_plane_parent_class)->unrealize (widget);
}
s = CLAMP (1 - y * (1.0 / gtk_widget_get_height (widget)), 0, 1);
v = CLAMP (x * (1.0 / gtk_widget_get_width (widget)), 0, 1);
- gtk_adjustment_set_value (plane->priv->s_adj, s);
- gtk_adjustment_set_value (plane->priv->v_adj, v);
+ gtk_adjustment_set_value (plane->s_adj, s);
+ gtk_adjustment_set_value (plane->v_adj, v);
gtk_widget_queue_draw (widget);
}
{
double s, v;
- s = gtk_adjustment_get_value (plane->priv->s_adj);
- v = gtk_adjustment_get_value (plane->priv->v_adj);
+ s = gtk_adjustment_get_value (plane->s_adj);
+ v = gtk_adjustment_get_value (plane->v_adj);
if (s + ds > 1)
{
v += dv;
}
- gtk_adjustment_set_value (plane->priv->s_adj, s);
- gtk_adjustment_set_value (plane->priv->v_adj, v);
+ gtk_adjustment_set_value (plane->s_adj, s);
+ gtk_adjustment_set_value (plane->v_adj, v);
return;
error:
GtkShortcutAction *action;
GtkShortcut *shortcut;
- plane->priv = gtk_color_plane_get_instance_private (plane);
-
gtk_widget_set_focusable (GTK_WIDGET (plane), TRUE);
atk_obj = gtk_widget_get_accessible (GTK_WIDGET (plane));
gesture = gtk_gesture_drag_new ();
g_signal_connect (gesture, "drag-begin",
- G_CALLBACK (plane_drag_gesture_begin), plane);
+ G_CALLBACK (plane_drag_gesture_begin), plane);
g_signal_connect (gesture, "drag-update",
- G_CALLBACK (plane_drag_gesture_update), plane);
+ G_CALLBACK (plane_drag_gesture_update), plane);
g_signal_connect (gesture, "drag-end",
- G_CALLBACK (plane_drag_gesture_end), plane);
+ G_CALLBACK (plane_drag_gesture_end), plane);
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
gtk_widget_add_controller (GTK_WIDGET (plane), GTK_EVENT_CONTROLLER (gesture));
{
GtkColorPlane *plane = GTK_COLOR_PLANE (object);
- g_clear_object (&plane->priv->texture);
+ g_clear_object (&plane->texture);
- g_clear_object (&plane->priv->h_adj);
- g_clear_object (&plane->priv->s_adj);
- g_clear_object (&plane->priv->v_adj);
+ g_clear_object (&plane->h_adj);
+ g_clear_object (&plane->s_adj);
+ g_clear_object (&plane->v_adj);
G_OBJECT_CLASS (gtk_color_plane_parent_class)->finalize (object);
}
static void
plane_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
GtkColorPlane *plane = GTK_COLOR_PLANE (object);
GtkAdjustment *adjustment;
case PROP_H_ADJUSTMENT:
adjustment = g_value_get_object (value);
if (adjustment)
- {
- plane->priv->h_adj = g_object_ref_sink (adjustment);
- g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (h_changed), plane);
- }
+ {
+ plane->h_adj = g_object_ref_sink (adjustment);
+ g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (h_changed), plane);
+ }
break;
case PROP_S_ADJUSTMENT:
adjustment = g_value_get_object (value);
if (adjustment)
- {
- plane->priv->s_adj = g_object_ref_sink (adjustment);
- g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
- }
+ {
+ plane->s_adj = g_object_ref_sink (adjustment);
+ g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
+ }
break;
case PROP_V_ADJUSTMENT:
adjustment = g_value_get_object (value);
if (adjustment)
- {
- plane->priv->v_adj = g_object_ref_sink (adjustment);
- g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
- }
+ {
+ plane->v_adj = g_object_ref_sink (adjustment);
+ g_signal_connect_swapped (adjustment, "value-changed", G_CALLBACK (sv_changed), plane);
+ }
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
g_param_spec_object ("h-adjustment",
"Hue Adjustment",
"Hue Adjustment",
- GTK_TYPE_ADJUSTMENT,
- GTK_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY));
+ GTK_TYPE_ADJUSTMENT,
+ GTK_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class,
PROP_S_ADJUSTMENT,
g_param_spec_object ("s-adjustment",
"Saturation Adjustment",
"Saturation Adjustment",
- GTK_TYPE_ADJUSTMENT,
- GTK_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY));
+ GTK_TYPE_ADJUSTMENT,
+ GTK_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class,
PROP_V_ADJUSTMENT,
g_param_spec_object ("v-adjustment",
"Value Adjustment",
"Value Adjustment",
- GTK_TYPE_ADJUSTMENT,
- GTK_PARAM_WRITABLE |
- G_PARAM_CONSTRUCT_ONLY));
+ GTK_TYPE_ADJUSTMENT,
+ GTK_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY));
gtk_widget_class_set_css_name (widget_class, "plane");
}
#ifndef __GTK_COLOR_PLANE_H__
#define __GTK_COLOR_PLANE_H__
-#include <gtk/gtkdrawingarea.h>
#include <gtk/gtktypes.h>
G_BEGIN_DECLS
#define GTK_TYPE_COLOR_PLANE (gtk_color_plane_get_type ())
#define GTK_COLOR_PLANE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COLOR_PLANE, GtkColorPlane))
-#define GTK_COLOR_PLANE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_COLOR_PLANE, GtkColorPlaneClass))
#define GTK_IS_COLOR_PLANE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_COLOR_PLANE))
-#define GTK_IS_COLOR_PLANE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_COLOR_PLANE))
-#define GTK_COLOR_PLANE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_COLOR_PLANE, GtkColorPlaneClass))
typedef struct _GtkColorPlane GtkColorPlane;
-typedef struct _GtkColorPlaneClass GtkColorPlaneClass;
-typedef struct _GtkColorPlanePrivate GtkColorPlanePrivate;
-
-struct _GtkColorPlane
-{
- GtkWidget parent_instance;
-
- GtkColorPlanePrivate *priv;
-};
-
-struct _GtkColorPlaneClass
-{
- GtkWidgetClass parent_class;
-
- /* Padding for future expansion */
- void (*_gtk_reserved1) (void);
- void (*_gtk_reserved2) (void);
- void (*_gtk_reserved3) (void);
- void (*_gtk_reserved4) (void);
-};
GType gtk_color_plane_get_type (void) G_GNUC_CONST;